1. Field of the Invention
This invention pertains generally to ring scheduling algorithms. More particularly, the invention is an apparatus and system for supporting enhanced ring scheduling for device ports on platforms having limited power supply. The present invention further seeks to preserve caller ID when possible.
2. The Prior Art
Voice over protocol standards, such as VoIP (Voice over Internet Protocol) and VoATM (Voice over ATM), have been in development in recent years. Some network configurations implementing these standards may have a plurality of devices (e.g., phones) coupled thereto.
Due to hardware limitations, certain platforms cannot ring all the devices concurrently. As is known in the art, the total of all RENs (Ringer Equivalency Number) of the telephones connected to the one line must not exceed a predetermined value (e.g., five (5) RENs for some devices) or some or all of the ringers may not operate. Accordingly, most router devices with limited power supply have a maximum current rating which prevents ringing more than a certain number of phones devices on the network. In general, if the (maximum REN for the phone device) times the (number of phone lines) is greater than the (REN-rating of the particular router device), a ringing problem will arise. Thus, a router device having a maximum rating of 20 RENs operating with phone devices supporting a maximum of 5 RENs would be limited to ringing 4 phone lines according to prior art implementations.
Increasing the power supply to accommodate a higher current rating presents the problem that additional heat produced by the power supply must be dissipated, resulting in the need for larger and/or more expensive dissipation devices (e.g. fans) and typically larger device footprints, the results of which are not desirable.
A solution to provide support for ring scheduling for such devices with limited supply is thus needed to accommodate ringing for more than the system dependent limit. Furthermore, it would be advantageous to preserve the Caller ID information when possible. As is generally known, Caller ID information is communication from a source phone to the destination phone and identifies the phone number of the source to the destination phone. Preserving the Caller ID information would therefore provide better service to users of the system.
Accordingly, there is a need for an apparatus and method which provides for supporting enhanced ring scheduling for devices on platforms with limited power supply which further seeks to preserve Caller ID data. The present invention satisfies these needs, as well as others, and generally overcomes the deficiencies found in the background art.
The present invention is an apparatus and method for supporting enhanced ring scheduling for devices on platforms with limited power supply while seeking to preserve caller ID information and normal ringing cadence.
In general, the ring scheduling apparatus of the present invention comprises a xe2x80x9cLine Managerxe2x80x9d coupled to a xe2x80x9cRing Schedulerxe2x80x9d. The Line manager is further operatively coupled for communication with the network line and with the local device ports (e.g. phones, DSPs, etc.). The Line manager monitors the signaling events originating both from the network and the local device ports. If the signaling events originate from the network, the Line Manager determines whether the signaling commands associated with the signaling events should be modified to indicate ringing, no ringing, or pass the signaling commands unmodified. Caller-ID support is provided during this operation.
According to the algorithm of the ring scheduling apparatus, the present invention is capable of ringing the maximum number of devices attached to the apparatus xe2x80x9csimultaneouslyxe2x80x9d (i.e., within the same ringing period) to overcome the prior-art ringing limitation. For example, conventional ringing cadence for North America comprises six (6) second periods, each period having a two (2) second ringing cycle followed by a four (4) second silent interval. According to one embodiment, the present invention utilizes a cadence having four (4) second periods, each period generally having a one (1) second ringing cycle followed by a three (3) second silent interval. Under this arrangement, the ring scheduling apparatus controls the ringing cadence of the local devices by scheduling a maximum of sixteen (16) ringing cycles per period with a time granularity of one-fourth (xe2x80x94xc2xc) second. The invention is not limited to this arrangement, however. Under this example, the ring scheduling apparatus schedules ringing a maximum of four one-second ringing cycles per second, within the four second period. By managing the ringing cadence as described herein, 16 devices may be ringing during the same four-second period, 4 devices ringing per second of the period under this exemplary implementation.
To this end, the Line manager maintains a state machine for each line attached to the local device ports (line state machine). As described more fully below, the line state machine solution provides support for caller-ID. In general, the Line manager manages the state and transition between states for each line, the states including closed, idle, queue wait, active, ring 1, and long silent interval (LSI). The Line Manager communicates with the Ring Scheduler to determine the appropriate state of each line.
In general, the line is idle when the device attached is active and waiting for a ringing signal. When a ringing signal is directed to a device, the Line manager negotiates with the Ring Scheduler to determine if resources are available to ring the device. If not, the line state transitions to queue wait. Otherwise, if the line supports Caller-ID, the line state transitions to the Ring 1. If the line does not support Caller-ID, the state transitions to active. After the Ring 1 state, the line transitions to the long silent interval (LSI), where Caller-ID data is displayed. After the LSI state, the line transitions to active. At any time the line state may transition to idle, if for example the remote device goes xe2x80x9con hookxe2x80x9d or if the target device goes xe2x80x9coff hookxe2x80x9d.
During the active state, the line transitions between a xe2x80x9cringingxe2x80x9d state and a xe2x80x9cno ringingxe2x80x9d state according to the ringing cadence under consideration. As noted above, the cadence according to this present exemplary implementation provides a ringing cycle of one second followed by a three second silent cycle. The ringing/silent state cycling is maintained by the Ring Scheduler. In this way, the Ring Scheduler manages the resource allocation and reallocation of line usage by scheduling ringing according to the ringing algorithm described above. For each line attached to a device, the Ring Scheduler maintains a plurality of time slots, each time slot indicating whether the device is ringing, not ringing, or reserved. In this way, the Ring Scheduler is able to allocate time slots for ringing the maximum number of devices.
The Ring Scheduler also maintains a state of xe2x80x9creservedxe2x80x9d for a line. The scheduler marks a reserved for the duration of the RING1 state to indicate that that line is ringing, so the resources (REN""s) cannot be allocated to another line. For example, in a case where caller ID is supported and a new ringing indication is received, the Ring Scheduler is queried to determine if there are sufficient resources to ring a line for up to a predetermined amount of time (e.g. 4 seconds). If so, the Ring Scheduler reserves time slots (e.g. 4 seconds) for that line. The reserved time slots are later de-allocated when a no-ringing indication is received. This process is described in further detail below.
It is noted that ringing 16 devices simultaneously, although the maximum of devices for the cadence under this scheme, is only illustrative, and the present invention is suitable for use with other cadence schemes having different period lengths and ringing/silent cycles as would be readily apparent to those skilled in the art having the benefit of this disclosure.
The invention further relates to machine readable media on which are stored embodiments of the present invention. It is contemplated that any media suitable for retrieving instructions is within the scope of the present invention. By way of example, such media may take the form of magnetic, optical, or semiconductor media. The invention also relates to data structures that contain embodiments of the present invention, and to the transmission of data structures containing embodiments of the present invention.
Further objects and advantages of the invention will be brought out in the following portions of the specification, wherein the detailed description is for the purpose of fully disclosing the preferred embodiment of the invention without placing limitations thereon.